using System;
using System.Web.Profile;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using ClickSocial.Framework;

namespace ClickSocial
{
    public partial class Site : System.Web.UI.MasterPage
    {
        #region Propiedades
        public int TipoBusqueda
        {
            get
            {
                return Convert.ToInt32(ddlTipoBusqueda.SelectedValue);
            }
            set
            {
                ListItem item = ddlTipoBusqueda.Items.FindByValue(value.ToString());
                if (item != null) ddlTipoBusqueda.SelectedIndex = ddlTipoBusqueda.Items.IndexOf(item);
            }
        }
        public string TextoBusqueda
        {
            get
            {
                return txtBusqueda.Text;
            }
            set
            {
                txtBusqueda.Text = value;
            }
        }
        public GAControl.GAControl Analytics  
        {  
            get { return ctrlAnalytics; }  
        }

        

        public string FechaDesde
        {
            get
            {
                return txtFechaDesde.Text;

            }
            set
            {
                txtFechaDesde.Text = value;
            }
        }
        

        public string FechaHasta
        {
            get
            {
                return txtFechaHasta.Text;

            }
            set
            {
                txtFechaHasta.Text = value;
            }
        }
        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            LoginStatus1.Visible = Context.User.Identity.IsAuthenticated;
            Login1.Visible = !Context.User.Identity.IsAuthenticated;

            if (!IsPostBack)
            {
                UpdateCarrito();
            }

            RequiredFieldValidator1.Visible = !ddlTipoBusqueda.SelectedValue.Equals("2");
            RegularExpressionValidator1.Visible = !ddlTipoBusqueda.SelectedValue.Equals("2");
            txtBusqueda.Visible = !ddlTipoBusqueda.SelectedValue.Equals("2");

            txtFechaDesde.Visible = ddlTipoBusqueda.SelectedValue.Equals("2");
            txtFechaHasta.Visible = ddlTipoBusqueda.SelectedValue.Equals("2");
        }

        protected void Login1_LoggedIn(object sender, EventArgs e)
        {
            Cart carrito_anterior = null;
            Cart carrito_actual = null;
            Login login = sender as Login;

            if (Membership.ValidateUser(login.UserName, login.Password))
            {
                PerfilComun p = ProfileBase.Create(login.UserName) as PerfilComun;

                if (p.Carrito != null && p.Carrito.CartItems.Count > 0)
                {
                    carrito_anterior = p.Carrito;
                }

                if (Session["carrito"] != null)
                {
                    carrito_actual = Session["carrito"] as Cart;

                    if (carrito_anterior != null)
                    {
                        foreach (CartItem i in carrito_anterior.CartItems)
                        {                           
                            if (carrito_actual.CartItems.Find(delegate(CartItem item){
                            return (item.Archivo == i.Archivo && item.EventoID == i.EventoID && item.Precio == i.Precio);}) == null)
                            {
                                carrito_actual.CartItems.Add(i);
                            }
                        }
                    }
                }

                Session["carrito"] = carrito_actual;

                if (Roles.IsUserInRole(p.UserName, Global.RolesApp.Host))
                {
                    long Espacio = Convert.ToInt64(ConfigurationManager.AppSettings["Espacio"]);

                    if (p.Espacio != Espacio)
                    {
                        p.Espacio = Espacio;
                        p.Save();
                    }
                }

                if (Roles.IsUserInRole(p.UserName, Global.RolesApp.Fotografo) || Roles.IsUserInRole(p.UserName, Global.RolesApp.UserEvent))
                {
                    Response.Redirect("~/Admin/MyEvents.aspx");
                }
            }


        }

        protected void LoginStatus1_LoggingOut(object sender, LoginCancelEventArgs e)
        {

        }

        protected void LoginStatus1_LoggedOut(object sender, EventArgs e)
        {
            if (Session["carrito"] != null)
            {
                PerfilComun p = Context.Profile as PerfilComun;
                p.Carrito = Session["carrito"] as Cart;
                p.Save();
                Session["carrito"] = null;
            }
        }

        public void UpdateCarrito()
        {
            
                if (Session["carrito"] != null)
                {
                    Cart carrito = Session["carrito"] as Cart;

                    lblCantCart.Text = carrito.CartItems.Count.ToString();

                }
                else
                {
                    lblCantCart.Text = "0";
                }
            
        }

     
    }
}
